#include "Losa.h"

#include <glm\gtc\matrix_transform.hpp>


Losa::Losa(float ancho, float largo, float grosor):
	m_ancho(ancho), m_largo(largo), m_grosor(grosor), 
	m_pisolosa(ancho, largo, grosor), 
	m_baselosa(ancho, largo, grosor), 
	m_bordelosa(ancho, largo, grosor)
{

}

void Losa::init(const glm::vec3 &DireccionLuz) {
	this->m_pisolosa.init(DireccionLuz, "ShadowTextureShader.vert", "ShadowTextureShader.frag");	/*
	this->m_pisolosa.init(DireccionLuz, "ShadowRealmShader.vert", "ShadowRealmShader.frag");	// */

	this->m_pisolosa.setMaterial( glm::vec3(0.7765f, 0.7922f, 0.8039f), glm::vec3(0.2588f, 0.2641f, 0.268f), glm::vec3(0.0f, 0.0f, 0.0f), 1.0f );
	this->m_pisolosa.setTextura("pisoLosa.dds");

	this->m_baselosa.init(DireccionLuz, "ShadowTextureShader.vert", "ShadowTextureShader.frag");	/*
	this->m_baselosa.init(DireccionLuz, "ShadowRealmShader.vert", "ShadowRealmShader.frag");	// */

	this->m_baselosa.setMaterial( glm::vec3(0.7f, 0.7f, 0.7f), glm::vec3(0.2f, 0.2f, 0.2f), glm::vec3(0.0f, 0.0f, 0.0f), 1.0f );
	this->m_baselosa.setTextura("cieloraso.dds");

	this->m_bordelosa.init(DireccionLuz, "ShadowTextureShader.vert", "ShadowTextureShader.frag");	/*
	this->m_bordelosa.init(DireccionLuz, "ShadowRealmShader.vert", "ShadowRealmShader.frag");	// */

	this->m_bordelosa.setMaterial( glm::vec3(0.7f, 0.7f, 0.7f), glm::vec3(0.2f, 0.2f, 0.2f), glm::vec3(0.0f, 0.0f, 0.0f), 1.0f );
	this->m_bordelosa.setTextura("cieloraso.dds");
}


void Losa::renderizar(const glm::mat4 &matVista, const glm::mat4 &matProyeccion, const glm::mat4 &matModelo) const {
	this->m_pisolosa.renderizar( matVista, matProyeccion, matModelo );
	this->m_baselosa.renderizar( matVista, matProyeccion, matModelo );
	this->m_bordelosa.renderizar( matVista, matProyeccion, matModelo );
}

